# -*- coding:utf-8 -*-

from qiniu import Auth

# 需要填写你的 Access Key 和 Secret Key
from qiniu import put_data
# from qiniu import put_file

access_key = 'x1I3R5AmbLDp6OtZiPqVlPjpa2FC_xiF6qlfksyI'
secret_key = 'f6JXKoRhyHYG3p8KCij67ELLWjNn0hXYJXxi9M_r'


# 我们使用此工具类的目的,是调用存储图像方法后,获得图像名-->给用户的的头像路径字典赋值
def storage(file_data):
    """上传图片到七牛,file_data是文件的二进制数据"""
    # 构建鉴权对象
    q = Auth(access_key, secret_key)

    # 要上传的空间
    bucket_name = 'ihome06'

    # 我们不要这个key, 七牛会自动产生
    # 上传到七牛后保存的文件名
    # key = 'my-python-logo.png'

    # 生成上传 Token ,可以指定过期时间等
    token = q.upload_token(bucket_name, None, 3600)

    # 我们这个是通过form表单提交的,不需要用到put_file方法
    # put_file 函数需要上传文件的本地路径
    # localfile = './sync/bbb.jpg'
    # ret, info = put_file(token, None, file_path)

    ret, info = put_data(token, None, file_data)

    print 'info: %s' % info
    print 'ret: %s' % ret

    if info.status_code == 200:
        # 表示上传成功,返回文件名
        # 我们上传成功之后,需要在别的页面显示图像,因此需要返回图像名
        return ret.get("key")
    else:
        # 表示上传失败
        raise Exception('上传失败')


if __name__ == '__main__':
    # 打开图片数据
    # rb 以二进制读取
    with open('/home/python/Desktop/GitSource/ihome06/ihome/static/houses_images/3.jpg', 'rb')as f:
        # 读取文件的二进制数据
        file_data = f.read()
        # 上传图片到七牛云,上传成功的话,上传函数可以获取上传的文件名
        result = storage(file_data)
        # 打印上传的文件名
        print '上传成功后的文件名: ', result
